Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Звіт

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
КСС
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2016
Тип роботи:
Лабораторна робота
Предмет:
Проектування віртуальних машин

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ«ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра ЕОМ  Звіт лабораторна робота №6 «Дослідження принципів віртуалізації програмного оточення на прикладі Java Virtual Machine» з дисципліни: «Проектування віртуальних машин» Мета: Дослідити роботу засобів програмної віртуалізації на прикладі Java Virtual Machine Завдання: № Функція Кількість вхідних аргументів  05 Середнє арифметичне 2  Порядок виконання роботи: 1. Схема та стислий опис роботи JVM. Програми, що написані мовою Java, є незалежними від фізичної платформи. Це означає, що можна скомпілювати Java-програму на одній архітектурі (наприклад, Pentium), а потім запустити її на виконання в іншій архітектурі (скажімо, на Sun workstation) без додаткових модифікацій і перекомпіляції. Компілятор Java-програм не враховує архітектуру машини, на якій має викликатися результат компіляції, наприклад, число регістрів, розмір пам’яті, порти введення-виведення тощо. Після завершення компіляції для виконання програми нам потрібна так звана віртуальна машина Java - Java Virtual Machine (JVM), аби надати архітектуру для запуску і виконання скомпільованої програми. При цьому віртуальною машиною Java називають програмне забезпечення, що емулює реальну машину. VM є за своєю сутністю обгорткою ("wrapper"), в яку загорнуто реальну апаратну архітектуру. З боку Java-програми така обгортка надає стандартний інтерфейс, а з боку апаратури інтерфейс обгортки залежить від апаратної архітектури і є досить складним. Тому JVM для платформи Pentium відрізняється від JVM для платформи Sun workstation, яка, в свою чергу, відрізняється від JVM для платформи Macintosh тощо. Хоча JVM є віртуальною, вона надає яскравий приклад елегантно розробленої архітектури рівня машинних інструкцій. Віртуальна машина Java для конкретної платформи реалізується на машинних інструкціях цієї платформи. JVM діє як інтерпретатор так званого байткоду Java (Java bytecode), що інтерпретуються під час виконання в машинні інструкції відповідної обчислювальної машини. Байткод Java є результатом компіляції текстів програм, написаних мовою Java (рис.1). Робота JVM подібна до виконання оператора switch (case) - JVM «розбирає» одну інструкцію байткоду за один раз. При цьому кожна інструкція байткоду спричиняє перехід на відповідний блок машинного коду (в архітектурі платформи виконання), який власне реалізує цю інструкцію байткоду.  Рис.1. Схема віртуалізаії програмного оточення на основі JVM 2. Порядок створення, компіляції та запуску Java-програм. Для того щоб створювати та компілювати Java-програми потрібно встановити Java Development Kit. Далі була набрана програма згідно варіанту. Та збережена з назвою my_lab.java. Наступним кроком була її компіляція javac my_lab.java. Далі отримання її байт коду java –c my_lab та вивід її у файл. Останнім кроком був запуск скомпільованої програми java my_lab. 3. Текст створеної Java-програми. public class my_lab{ public static void main (String[] Args) { int a,b,res = 0; a = Integer.parseInt(Args[0]); b = Integer.parseInt(Args[1]); res = Calc(a,b); System.out.println(res); } public static int Calc(int i, int j) { int sum = (i + j) / 2; return sum; } } 4. Результати компіляції та запуску на виконання створеної Java-програми.  Рис.2. Схема конфігурації віртуальної мережі на основі мостового з’єднання. 5. Текст байткоду створеної Java-програми у вигляді інструкцій JVM з поясненнями. Compiled from "my_lab.java" public class my_lab { public my_lab(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return public static void main(java.lang.String[]); Code: 0: iconst_0 1: istore_3 2: aload_0 3: iconst_0 4: aaload 5: invokestatic #2 // Method java/lang/Integer.parseInt:(Ljava/lang/String;)I 8: istore_1 9: aload_0 10: iconst_1 11: aaload 12: invok...
Антиботан аватар за замовчуванням

11.05.2016 20:05

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини